在說第二天分頁的從無到有的版本前,先認識一下資料庫使用的CRUD
就是網站https://laihao2.com/
作品列表新增:這裡就是資料庫使用的CRUD
裡面的新增和查詢,再加上下載檔案
在這裡練習的MVC從資料庫開始~整個走完
ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
資料表的SQL
USE [ProductDB]
GO
/****** Object:  Table [dbo].[Product]    Script Date: 2024/9/11 下午 10:18:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product](
	[編號] [nvarchar](50) NOT NULL,
	[品名] [nvarchar](50) NULL,
	[單價] [int] NULL,
	[備註] [nvarchar](50) NULL,
	[單據編號] [nvarchar](50) NULL,
	[data] [datetime] NULL,
 CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED 
(
	[編號] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
建立後的樣子
目前裡面有填的資料
再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>
到專案建完MVC之後的檔案顯示
Models選加入,然後選>新增項目
新增項目 選資料,再選 ADO.NET實體資料模型
選第四個 來自資料庫的Code First選這個之後資料表有新增欄位才可以單獨新增
跟本機資料庫連接,如果是在公司有時候無法連也是因為權限不足要請MIS設定
測試資料庫是否有連線成功
選擇資料表
回到Model查看,就自動新增,兩個檔案
對照ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
就是產生Models裡面類別檔dao
看到最下面的Web.config
填入跟本機資料庫的帳密連線
<add name=“ProductDBContext” connectionString=“data source=127.0.0.1;initial catalog=ProductDB;user id=帳號;password=密碼;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View
按:建置>
Controllers裡面的Entities>
程式碼
ProductDBContext _db = new ProductDBContext();
public ActionResult Index()
        {
            var products = _db.Products.ToList();
            return View(products);
        }
解釋程式碼
這段代碼是一個用於 ASP.NET MVC 框架的控制器操作方法,功能是在視圖中顯示產品列表。具體解釋如下:
ProductDBContext _db = new ProductDBContext();:
_db,用於與數據庫交互。ProductDBContext 是繼承自 DbContext 的類,代表與 Products 表相關的數據庫操作。public ActionResult Index():
Index。它會處理用戶請求,並返回一個視圖(頁面)。ActionResult 是返回類型,表示該方法可以返回不同的結果類型,比如視圖、重定向或 JSON 數據。var products = _db.Products.ToList();:
Products 表的所有產品記錄,並將它們存儲在變量 products 中。ToList() 方法將查詢結果轉換為列表形式。return View(products);:
products 傳遞給視圖(前端頁面),用於在頁面中顯示產品數據。總結來說,這個方法從數據庫中讀取所有產品,並將它們傳遞給視圖,通常對應的是一個顯示產品列表的頁面。
產生畫面View
下一步
下一步
產生簡單版的程式碼
修改成自己要的
@model IEnumerable<WebApplication5.Models.Product>
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<p>
    @Html.ActionLink("下載範本", "DownloadTemplate", "Home")
</p>
<h3>使用SOP</h3>
<ol>
    <li>
        按"下載範本"右上顯示下載
    </li>
    <li>
        開啟檔案
    </li>
    <li>
        word上方工作列選"郵件"
    </li>
    <li>
        工作列選"郵件"看"預覽結果"
    </li>
    <li>
        "預覽結果"依序選擇
    </li>
    <li> 列印word
    </li>
</ol>
        <table class="table">
            <tr>
                <th>
                    序號
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.編號)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.品名)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.單價)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.備註)
                </th>
                <th></th>
            </tr>
            @{
                int counter = 1;
            }
            @foreach (var item in Model)
            {
                <tr>
                    <td>@(counter++)</td>
                    <td>
                        @Html.DisplayFor(modelItem => item.編號)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.品名)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.單價)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.備註)
                    </td>
                    @*
                    <td>
                        @Html.ActionLink("Edit", "Edit", new { id = item.編號 }) |
                        @Html.ActionLink("Details", "Details", new { id = item.編號 }) |
                        @Html.ActionLink("Delete", "Delete", new { id = item.編號 })
                    </td>*@
                </tr>
            }
        </table>
解釋程式碼
這段代碼是一個 ASP.NET MVC 視圖文件,使用 Razor 語法來生成一個 HTML 頁面。它的功能是顯示一個產品列表,並且提供了一些操作和說明。以下是對這段代碼的詳細解釋:
@model IEnumerable<WebApplication5.Models.Product>:
IEnumerable<Product> 類型的模型相關聯。也就是說,視圖將接收一個 Product 對象的集合,並對每個產品進行渲染。Product 是模型類,定義了產品的屬性。@{ ViewBag.Title = "Index"; }:
<title> 標簽。<h2>Index</h2>:
操作鏈接:
@Html.ActionLink("Create New", "Create"):
Create 動作方法。@Html.ActionLink("下載範本", "DownloadTemplate", "Home"):
Home 控制器中 DownloadTemplate 動作的超鏈接,鏈接的文本是 "下載範本"。使用SOP的步驟說明:
<ol> 和 <li> 標簽,列出了下載模板和操作的詳細步驟說明。這段內容是給用戶操作時的指南。表格結構:
<table class="table">:
table 樣式類的表格。<th>):
<th> 標簽是表頭,分別對應 "序號"、"編號"、"品名"、"單價"、"備註"。@Html.DisplayNameFor(model => model.編號) 等代碼動態生成表頭名稱,基於模型屬性的名稱。動態內容部分:
@foreach (var item in Model):
Model(即產品列表),每個 item 表示一個產品。@Html.DisplayFor(modelItem => item.編號):
編號、品名、單價 和 備註。counter 是一個計數器,顯示每一行的序號,初始值為 1,隨著每次循環遞增。注釋的部分:
@* 和 *@ 之間的內容是注釋掉的,暫時不顯示這些操作鏈接。Edit(編輯)、Details(詳情)和 Delete(刪除),每個鏈接都根據產品的 編號 生成相應的操作。總結來說,這個視圖的功能是生成一個產品列表表格,包含產品的 編號、品名、單價 和 備註 等信息,並提供下載模板和其他操作的超鏈接。
這個解釋完畢之後再來說還有安裝新的原件的分頁功能~感覺比較順
大家明天見~